// 请求未返回时的loading
const showLoading = () => wx.showLoading({
  title: '加载中...'
});

const hideLoading = () => wx.hideLoading();

// 封装的请求函数
export default function request(url, method = 'GET', data = {}) {
  let urlFull = 'http://aiwz.mguit.com/' + url;

  return new Promise(async (resolve, reject) => {
    showLoading(); // 显示加载提示

    let userInfo = await uni.getStorageSync('userInfo')

    wx.request({
      url:urlFull,
      method:method,
      data:data,
      header: {
        'content-type': 'application/json', // 默认值
        'token':userInfo.token || ''
      },
      success: (res) => {
        if (res.statusCode === 200 && res.data.code == 10000) {
          hideLoading(); // 请求成功后隐藏加载提示
          resolve(res.data); // 返回实际数据部分
        }else if(res.data.code == 10006){
          uni.removeStorage({
            key: 'userInfo',
            success: function (res) {
              console.log('success');
            }
          });
          uni.navigateTo({
            url: '/pages/login/index'
          });
          reject(res.data.msg || '登录过期，重新登录');
        } else {
          hideLoading(); // 即便请求失败，也要隐藏加载提示
          // 错误提示
          wx.showToast({
            title: res.data.msg,
            icon: 'error'
          })

          reject(res.data.msg || '请求失败'); // 错误处理
        }
      },
      fail: (err) => {
        hideLoading(); // 失败时隐藏加载提示

        reject(err.errMsg || '网络请求失败');
      }
    });
  });
}
